1. Field of the Invention
The invention relates to personal video recorders, and more particularly, to a personal video recorder having improved data access.
2. Description of the Prior Art
A personal video recorder (PVR) is a generic term referring to a device that is similar to a video cassette recorder (VCR) but records television data utilizing a digital format as opposed to an analog format such as used by a VCR. A PVR can also be referred to as a hard disk recorder (HDR), a digital video recorder (DVR), a personal video station (PVS), or a personal TV receiver (PTR). While VCRs utilize analog tapes to record and play programs broadcast over television, PVRs encode video data in digital formats such as Moving Pictures Expert Group (MPEG)-1 or MPEG-2 and store the data on a magnetic medium such as a hard drive. PVRs need to provide similar functionality as VCRs (recording, playback, fast forwarding, rewinding, pausing) and also include the ability to instantly jump to any part of a television program without having to rewind or fast forward the data stream. A benefit of the PVR system is that these functions can be applied to a television program that is currently being received. That is, from the respect of a user, the functions of the PVR are available even while watching a live television broadcast.
A PVR is essentially made up of two elements including a device that stores its hardware elements, such as the hard disk drive, power supply and buses, and software that may access a subscription service for providing programming information and provides the ability to encode and decode data streams. Additionally, when implemented as a set-top box, the PVR receives a transport stream, e.g. a MPEG transport stream, as an input signal. In this situation, because the transport stream has crossed a network of some kind, there may be errors in the input signal. Furthermore, packets of the input signal received from the transport stream may arrive in any order and may be reduced in size due to the properties of the network. For example, wireless networks, cable based networks, optical networks, and asynchronous transfer mode (ATM) networks all have different packet size requirements.
In a PVR system, packet insertion is sometimes needed to provide extra control and to allow the PVR system to provide extra services/functions. For example, in order to protect intellectual property of content during transport, condition access (CA) is used to provide content security. The basic concept of CA involves using a secret key exchange method between two sides, a service provider and a user, and then scrambling the content with a set of secret keys. As an example of a situation requiring packet insertion, the PVR system may need to insert control words to carry information regarding key exchange.
FIG. 1 shows a block diagram of a typical architecture 100 used in a PVR for packet insertion. As shown in FIG. 1, the typical architecture 100 includes a central processing unit (CPU) 102, a system memory 104, an insertion module 106, a synchronous random access memory (SRAM) 108, and a PVR module 110. The SRAM 108 is used to store a register file, and insertion information typically originates from the CPU 102 parsing either an incoming bit stream IN or from some information generated by the CPU 102. The CPU 102 then processes data stored and read from the system memory 104, and further stores insertion data in the system memory 104. The insertion module 106 uses a link-list to collect and organize the insertion data in the system memory 104, and a direct memory access (DMA) operation is performed to move data between the insertion module 106 and the system memory 104. However, this typical architecture 100 shown in FIG. 1 suffers from a problem that a large amount of bandwidth between the CPU 102 and the system memory 104 is required. This requirement is due to the CPU 102 needing to both retrieve from and store data to the system memory 104.